{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "GEN_1_perceptron_class.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "authorship_tag": "ABX9TyPRdgRjZeSs6SEhxBkLpdr9",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/cxbxmxcx/GenReality/blob/master/GEN_1_perceptron_class.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SEZMaMLfrG9M"
      },
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gApgZsEoiSU3"
      },
      "source": [
        "Regression"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "71rIK6EniPOA",
        "outputId": "385921a1-fae4-425f-b378-ea145e914f2a",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 50
        }
      },
      "source": [
        "X = np.array([[1,2,3],[3,4,5],[5,6,7],[7,8,9],[9,8,7]])\n",
        "Y = np.array([1,2,3,4,5])\n",
        "             \n",
        "print(X.shape)\n",
        "print(Y.shape)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(5, 3)\n",
            "(5,)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "OGR8Z5t1n0bS",
        "outputId": "925fd64d-96ad-498d-c6aa-be35b1f179f6",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 265
        }
      },
      "source": [
        "fig = plt.figure()\n",
        "ax = fig.add_subplot(111, projection='3d')\n",
        "ax.scatter(X[:,0], X[:,1], X[:,2], c='r', marker='o')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x7f4b662472b0>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 20
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VViIopAmsCnY"
      },
      "source": [
        "Hyperparameters & Parameters"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "EbxVDzvLsBzz",
        "outputId": "4c8c4912-9893-434a-9bb6-c24b1520e70c",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "no_of_inputs = X.shape[1]\n",
        "epochs = 50\n",
        "learning_rate = .01\n",
        "weights = np.random.rand(no_of_inputs + 1)\n",
        "print(weights.shape)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(4,)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zB23JptVszqe"
      },
      "source": [
        "Activation Function"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "4Cermj4Fst_M"
      },
      "source": [
        "def relu_activation(sum):\n",
        "  if sum > 0: return sum\n",
        "  else: return 0"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "62CgnF7SjeKD"
      },
      "source": [
        "Step Activation\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Lp8_pfqew8Y9"
      },
      "source": [
        "The Preceptron Class"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-i15fphnw-xO"
      },
      "source": [
        "class Perceptron(object):\n",
        "  def __init__(self, no_of_inputs, activation):\n",
        "    self.learning_rate = learning_rate\n",
        "    self.weights = np.zeros(no_of_inputs + 1)\n",
        "    self.activation = activation\n",
        "           \n",
        "  def predict(self, inputs):\n",
        "    summation = np.dot(inputs, self.weights[1:]) + self.weights[0]\n",
        "    return self.activation(summation)\n",
        "\n",
        "  def train(self, training_inputs, training_labels, epochs=100, learning_rate=0.01):\n",
        "    history = []\n",
        "    for _ in range(epochs):\n",
        "      for inputs, label in zip(training_inputs, training_labels):\n",
        "        prediction = self.predict(inputs)\n",
        "        loss = (label - prediction) \n",
        "        loss2 = loss*loss\n",
        "        history.append(loss2)\n",
        "        print(f\"loss = {loss2}\")\n",
        "        self.weights[1:] += self.learning_rate * loss * inputs\n",
        "        self.weights[0] += self.learning_rate * loss\n",
        "    return history"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "QBhQ6O12u0A6"
      },
      "source": [
        "Regression Perceptron & Training\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "IHY5n0MxxbDM",
        "outputId": "f1fc2219-598e-4503-f918-6a0d8978ccf9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        }
      },
      "source": [
        "perceptron = Perceptron(no_of_inputs, relu_activation)\n",
        "history = perceptron.train(X,Y, epochs=epochs)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "loss = 1\n",
            "loss = 2.9929\n",
            "loss = 1.72265625\n",
            "loss = 0.02312680562499999\n",
            "loss = 1.6902294577880648\n",
            "loss = 0.43885090318244224\n",
            "loss = 1.0864744810899838\n",
            "loss = 0.5473581787468343\n",
            "loss = 0.014073938663058378\n",
            "loss = 0.806173118252477\n",
            "loss = 0.226218111111116\n",
            "loss = 0.6366065678544175\n",
            "loss = 0.35172612685266824\n",
            "loss = 0.005872910287421307\n",
            "loss = 0.6893285923774122\n",
            "loss = 0.14966337430831014\n",
            "loss = 0.49888973542955645\n",
            "loss = 0.30699091008926555\n",
            "loss = 0.002750120538693394\n",
            "loss = 0.5718974980242251\n",
            "loss = 0.09254885825287329\n",
            "loss = 0.382854052289803\n",
            "loss = 0.26507499379402366\n",
            "loss = 0.0009190407225200681\n",
            "loss = 0.4770785550003508\n",
            "loss = 0.053279506555312314\n",
            "loss = 0.29258492422220883\n",
            "loss = 0.23034143290479603\n",
            "loss = 0.00011403726147022208\n",
            "loss = 0.3995448559617547\n",
            "loss = 0.02739320083670002\n",
            "loss = 0.22228179185201707\n",
            "loss = 0.2012886594034766\n",
            "loss = 4.578433319278737e-05\n",
            "loss = 0.33603928207373074\n",
            "loss = 0.011537968868818983\n",
            "loss = 0.16771798370408128\n",
            "loss = 0.17691666672060313\n",
            "loss = 0.0004952477091617059\n",
            "loss = 0.28389934030133473\n",
            "loss = 0.0031098011971910384\n",
            "loss = 0.12553078631115955\n",
            "loss = 0.1564030841741166\n",
            "loss = 0.0012956335479304753\n",
            "loss = 0.24098398854609457\n",
            "loss = 9.738732540475713e-05\n",
            "loss = 0.09305949772591392\n",
            "loss = 0.13907861903600494\n",
            "loss = 0.0023209746313100185\n",
            "loss = 0.205568202643601\n",
            "loss = 0.0009544672305961685\n",
            "loss = 0.06820016851124958\n",
            "loss = 0.12439715585411365\n",
            "loss = 0.0034770605665525767\n",
            "loss = 0.1762606780372458\n",
            "loss = 0.004499067222637774\n",
            "loss = 0.04929073684917199\n",
            "loss = 0.11191218704414116\n",
            "loss = 0.004694297512193779\n",
            "loss = 0.15193792173895806\n",
            "loss = 0.009833899072340998\n",
            "loss = 0.035019664500315066\n",
            "loss = 0.10125785039678895\n",
            "loss = 0.005922095190624369\n",
            "loss = 0.13169152168022108\n",
            "loss = 0.0162835518128941\n",
            "loss = 0.024353307415877132\n",
            "loss = 0.09213367600826362\n",
            "loss = 0.0071244623524748495\n",
            "loss = 0.11478593757126555\n",
            "loss = 0.023344996045689858\n",
            "loss = 0.0164781956656043\n",
            "loss = 0.08429230448505642\n",
            "loss = 0.008276557644833848\n",
            "loss = 0.10062469793286778\n",
            "loss = 0.030648635213372438\n",
            "loss = 0.010755177466124997\n",
            "loss = 0.0775295872738725\n",
            "loss = 0.009361995064406358\n",
            "loss = 0.08872331494584566\n",
            "loss = 0.03792770679378749\n",
            "loss = 0.006683002341466922\n",
            "loss = 0.07167659796399957\n",
            "loss = 0.010370744714786684\n",
            "loss = 0.07868756949311666\n",
            "loss = 0.0449942886603089\n",
            "loss = 0.0038694125922833483\n",
            "loss = 0.06659317766810549\n",
            "loss = 0.011297502605500071\n",
            "loss = 0.07019609054585468\n",
            "loss = 0.051720525622222575\n",
            "loss = 0.002008205867599732\n",
            "loss = 0.06216271286433067\n",
            "loss = 0.01214042946930307\n",
            "loss = 0.062986369850003\n",
            "loss = 0.05802397726580678\n",
            "loss = 0.0008610451567357716\n",
            "loss = 0.058287904215734404\n",
            "loss = 0.012900179418313387\n",
            "loss = 0.05684352583919936\n",
            "loss = 0.06385621568670787\n",
            "loss = 0.00024304223018144002\n",
            "loss = 0.05488733293142219\n",
            "loss = 0.013579155811696308\n",
            "loss = 0.05159126871428776\n",
            "loss = 0.06919398250338145\n",
            "loss = 1.1339429887957762e-05\n",
            "loss = 0.05189266963671343\n",
            "loss = 0.01418094484595996\n",
            "loss = 0.04708462876669134\n",
            "loss = 0.07403235819965427\n",
            "loss = 5.6073079090694656e-05\n",
            "loss = 0.04924640142344141\n",
            "loss = 0.01470988780243243\n",
            "loss = 0.043204097926543936\n",
            "loss = 0.07837951095094227\n",
            "loss = 0.0002932278863350739\n",
            "loss = 0.046899977308055944\n",
            "loss = 0.015170761151727394\n",
            "loss = 0.03985090468638417\n",
            "loss = 0.08225268268615266\n",
            "loss = 0.0006589921209202399\n",
            "loss = 0.04481229197301127\n",
            "loss = 0.015568540264782252\n",
            "loss = 0.03694319857500313\n",
            "loss = 0.08567514203699836\n",
            "loss = 0.00110530326673661\n",
            "loss = 0.04294844339393947\n",
            "loss = 0.01590822766690269\n",
            "loss = 0.03441296509453301\n",
            "loss = 0.08867389085854058\n",
            "loss = 0.0015963374848027426\n",
            "loss = 0.041278712549654116\n",
            "loss = 0.016194730875525445\n",
            "loss = 0.032203527768231446\n",
            "loss = 0.09127795621789603\n",
            "loss = 0.0021057468510789195\n",
            "loss = 0.03977772350337022\n",
            "loss = 0.016432778107266233\n",
            "loss = 0.030267522495895274\n",
            "loss = 0.09351713556864966\n",
            "loss = 0.002614488629844375\n",
            "loss = 0.03842375023376244\n",
            "loss = 0.016626862702608793\n",
            "loss = 0.028565252229242933\n",
            "loss = 0.09542109118729936\n",
            "loss = 0.0031091229007948733\n",
            "loss = 0.037198143084617684\n",
            "loss = 0.01678120913843459\n",
            "loss = 0.027063348218101316\n",
            "loss = 0.09701871238121704\n",
            "loss = 0.0035804803582965626\n",
            "loss = 0.03608485291189288\n",
            "loss = 0.016899755091613154\n",
            "loss = 0.02573367866294212\n",
            "loss = 0.0983376817068928\n",
            "loss = 0.004022622380732733\n",
            "loss = 0.035070035192738165\n",
            "loss = 0.016986145270169322\n",
            "loss = 0.024552457276392353\n",
            "loss = 0.09940419543447854\n",
            "loss = 0.00443203159143979\n",
            "loss = 0.03414171972660428\n",
            "loss = 0.017043733712942384\n",
            "loss = 0.02349951359344317\n",
            "loss = 0.1002427995322644\n",
            "loss = 0.00480698394839762\n",
            "loss = 0.03328953426719914\n",
            "loss = 0.01707559203033445\n",
            "loss = 0.022557694345734815\n",
            "loss = 0.10087631113689673\n",
            "loss = 0.0051470635830833745\n",
            "loss = 0.032504472606133\n",
            "loss = 0.017084521662354236\n",
            "loss = 0.021712371203717558\n",
            "loss = 0.1013258023096545\n",
            "loss = 0.005452789697540255\n",
            "loss = 0.03177869938896191\n",
            "loss = 0.017073068701098686\n",
            "loss = 0.02095103499015606\n",
            "loss = 0.10161062824355538\n",
            "loss = 0.005725331251057865\n",
            "loss = 0.031105385365332305\n",
            "loss = 0.017043540191128966\n",
            "loss = 0.020262960317604453\n",
            "loss = 0.10174848628817196\n",
            "loss = 0.005966290264924711\n",
            "loss = 0.030478567923794202\n",
            "loss = 0.016998021105167252\n",
            "loss = 0.019638927691583832\n",
            "loss = 0.1017554954428956\n",
            "loss = 0.006177538616898431\n",
            "loss = 0.029893032692035932\n",
            "loss = 0.01693839141175065\n",
            "loss = 0.019070992601965674\n",
            "loss = 0.10164628852882437\n",
            "loss = 0.006361096402506157\n",
            "loss = 0.02934421273751834\n",
            "loss = 0.016866342819881124\n",
            "loss = 0.018552293119049594\n",
            "loss = 0.10143411123790524\n",
            "loss = 0.006519042479938235\n",
            "loss = 0.028828102516057674\n",
            "loss = 0.016783394914351563\n",
            "loss = 0.018076889114887876\n",
            "loss = 0.10113092379717284\n",
            "loss = 0.006653449826032631\n",
            "loss = 0.028341184214301297\n",
            "loss = 0.016690910492941358\n",
            "loss = 0.017639627522040353\n",
            "loss = 0.10074750217216254\n",
            "loss = 0.006766339921515687\n",
            "loss = 0.02788036453827619\n",
            "loss = 0.016590109990019287\n",
            "loss = 0.017236029083136855\n",
            "loss = 0.10029353664305647\n",
            "loss = 0.006859651640882334\n",
            "loss = 0.027442920331989407\n",
            "loss = 0.016482084925600722\n",
            "loss = 0.016862192884869922\n",
            "loss = 0.09977772628001802\n",
            "loss = 0.006935221114935139\n",
            "loss = 0.027026451681624254\n",
            "loss = 0.01636781035887833\n",
            "loss = 0.01651471564894983\n",
            "loss = 0.09920786836810196\n",
            "loss = 0.006994769816832351\n",
            "loss = 0.026628841383623963\n",
            "loss = 0.016248156354013773\n",
            "loss = 0.01619062330191823\n",
            "loss = 0.09859094222446019\n",
            "loss = 0.007039898739012349\n",
            "loss = 0.02624821983812994\n",
            "loss = 0.016123898486156012\n",
            "loss = 0.015887312790804863\n",
            "loss = 0.0979331871409562\n",
            "loss = 0.007072087013194939\n",
            "loss = 0.02588293458018134\n",
            "loss = 0.015995727429296776\n",
            "loss = 0.015602502472865635\n",
            "loss = 0.09724017439685367\n",
            "loss = 0.0070926937062447465\n",
            "loss = 0.025531523785846885\n",
            "loss = 0.015864257676295214\n",
            "loss = 0.015334189701325593\n",
            "loss = 0.09651687343723256\n",
            "loss = 0.007102961822841586\n",
            "loss = 0.02519269319381118\n",
            "loss = 0.015730035446412972\n",
            "loss = 0.01508061446819735\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WIyIMYX_jGY3"
      },
      "source": [
        "Regression Prediction"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "DkfR58uEyfTJ",
        "outputId": "c8cfe0a5-bf4e-4316-9585-36db5d9f987b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "perceptron.predict(np.array([3,3,3]))"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1.7619766554398972"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 25
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dy9cIYdvMBHN",
        "outputId": "fcd8e492-bd29-43f6-c863-4f10234f0b77",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        }
      },
      "source": [
        "plt.plot(history)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f4b66189f28>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 26
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxcdb3/8ddnZrI1TRvapHtLSilS9qWggHJdAEH5iQso+lNx+6H+8Kr3571XvS7X5apX7hWviLKIICqbUoQCLUtZSind0jZdkm5pmqbZ9z2Zycx8f3+cZc4saWObEE7yeT4efWTynWnmezLtez7zOd9zjhhjUEop5X+B8Z6AUkqp0aGBrpRSE4QGulJKTRAa6EopNUFooCul1AQRGq8nLioqMiUlJeP19Eop5Utbt25tNcYUZ7pv3AK9pKSE0tLS8Xp6pZTyJRE5PNx92nJRSqkJQgNdKaUmCA10pZSaIDTQlVJqgtBAV0qpCeKYgS4iuSKyWUR2iEi5iPwww2NyRORREakUkU0iUjIWk1VKKTW8kVToYeDdxphzgfOAq0XkbSmP+TzQYYw5Ffgl8PPRnaZSSqljOWagG0uv/W2W/Sf1nLvXAQ/Ytx8D3iMiMmqzzODJsjp6BofG8imUUspXRtRDF5GgiJQBzcALxphNKQ+ZDxwBMMZEgS5gZoafc7OIlIpIaUtLy3FPurl7kK89Usbq3Y3H/TOUUmqiGVGgG2NixpjzgAXAxSJy1vE8mTHmHmPMcmPM8uLijEeujkg4GgcgYn9VSin1d65yMcZ0Ai8DV6fcVQcsBBCREDAdaBuNCWaeh/U1FterLSmllGMkq1yKRaTQvp0HXAnsTXnYSuAm+/b1wEtmDK9tF7d/dFQDXSmlXCM5Oddc4AERCWK9AfzFGPO0iPwIKDXGrAR+D/xJRCqBduDGMZsxELMDPRbXlotSSjmOGejGmJ3A+RnGv++5PQjcMLpTO+qcAIhpniullMuXR4o6Qa4VulJKJfgy0LWHrpRS6Xwd6HENdKWUcvkz0O1Oi1boSimV4M9Ad3eKaqArpZTD14GuFbpSSiX4OtC1QldKqQSfBrr1VQNdKaUSfBnoTpBry0UppRJ8GehxPfRfKaXS+DLQE2dbHN95KKXUm4kvA91puWiFrpRSCb4MdF22qJRS6Xwd6LrKRSmlEvwZ6O7ZFjXQlVLK4c9A1wpdKaXS+DrQtYeulFIJPg1056sGulJKOXwa6HaFHtNAV0ophy8DPbEOXQNdKaUcvgx0p9MS1QOLlFLK5ctAdyt0LdCVUsrly0DXk3MppVQ6Xwa623LREl0ppVzHDHQRWSgiL4tIhYiUi8jXMjzmnSLSJSJl9p/vj810LTE9sEgppdKERvCYKPANY8w2ESkAtorIC8aYipTHrTPGXDv6U0zntlx0HbpSSrmOWaEbYxqMMdvs2z3AHmD+WE/saPQSdEople7v6qGLSAlwPrApw92XiMgOEVktImcO8/dvFpFSESltaWn5uyfriMf1wCKllEo14kAXkanACuDrxpjulLu3AScbY84Ffg08kelnGGPuMcYsN8YsLy4uPt45uy0XPfRfKaUSRhToIpKFFeYPGmMeT73fGNNtjOm1b68CskSkaFRn6qEXiVZKqXQjWeUiwO+BPcaY24Z5zBz7cYjIxfbPbRvNiXoZ7aErpVSakaxyuQz4FLBLRMrssX8DFgEYY+4Crge+LCJRYAC40Zix64ckTs6lBxYppZTjmIFujHkNkGM85g7gjtGa1LHE3B76G/WMSin15ufvI0X10H+llHL5MtDjevpcpZRK48tAj+kl6JRSKo0vA93JcWMS1bpSSk12/gx0T4jr+VyUUsriz0D3hLj20ZVSyuLTQE/c1j66UkpZfBroWqErpVQqfwZ6XANdKaVS+TLQvTtC9eAipZSy+DLQvQtbNM+VUsriy0CPa4WulFJpfBnoMe2hK6VUGl8Gui5bVEqpdL4MdO+p1vXQf6WUsvgy0L1tFq3QlVLK4stA92a49tCVUsri00DXCl0ppVL5PtC1QldKKYtPAz1xWwNdKaUs/gz0uB5YpJRSqfwZ6EnLFsdxIkop9Sbi+0DXCl0ppSy+DPRY3Htbe+hKKQUjCHQRWSgiL4tIhYiUi8jXMjxGROR2EakUkZ0icsHYTNdijEHEuq3LFpVSyjKSCj0KfMMYcwbwNuAWETkj5THXAEvtPzcDd47qLFPEjCE7aE1dD/1XSinLMQPdGNNgjNlm3+4B9gDzUx52HfBHY9kIFIrI3FGfrS1uIMsOdK3QlVLK8nf10EWkBDgf2JRy13zgiOf7WtJDHxG5WURKRaS0paXl75uphzGGrKDVc9EeulJKWUYc6CIyFVgBfN0Y0308T2aMuccYs9wYs7y4uPh4fgRghXh2SCt0pZTyGlGgi0gWVpg/aIx5PMND6oCFnu8X2GNjIm6M23LRHrpSSllGsspFgN8De4wxtw3zsJXAp+3VLm8DuowxDaM4zyTxOO5OUa3QlVLKEhrBYy4DPgXsEpEye+zfgEUAxpi7gFXA+4BKoB/47OhPNcFbocf0wCKllAJGEOjGmNcAOcZjDHDLaE3qWOLGkBWypqQVulJKWfx5pKhJtFx0lYtSSll8GejGGEIa6EoplcSXgR73HCmqLRellLL4MtBjcdx16LpsUSmlLL4MdGMMoYDuFFVKKS9fBnosbggGhIBoD10ppRy+DPS4MQQCQigQ0ApdKaVsvgx0YyAgQjAgSVcvUkqpycyXgR4zhqBAKCBEYxroSikFPg30uDEERAgERA/9V0opmz8DPQ4iYlXo2kNXSinAr4FuDMEA2kNXSikP3wa6s1NUe+hKKWXxZaDH7JZLQISYMXT1D/HS3qbxnpZSSo0rXwa68bZc4oa/ba/l8w+U0huOjvfUlFJq3Pgy0N1VLgJxA+FoHGNgKKorXpRSk5cvAz0W9yxbNIaYvWNUV7wopSYzXwa6e6SoWC0X54yLel4XpdRk5stAt1ouVg89FjfE7E5LVA8yUkpNYr4M9JhxzrYoxA1uy0XzXCk1mfky0OPGXrYYsKp1p+WiFbpSajLzZ6DH7ZaLWC0X52hR7aErpSYzfwa603KxD/3XVS5KKeXbQLdaLm6FrqtclFLq2IEuIveJSLOI7B7m/neKSJeIlNl/vj/600xwwjsongrdbp1roCulJrPQCB7zB+AO4I9Hecw6Y8y1ozKjY3D65QGx/sTjiTFtuSilJrNjVujGmFeB9jdgLiPi9MsDAetsizFj3MpcK3Sl1GQ2Wj30S0Rkh4isFpEzh3uQiNwsIqUiUtrS0nJcT+Sc/jzgnG3Rs8pFly0qpSaz0Qj0bcDJxphzgV8DTwz3QGPMPcaY5caY5cXFxcf1ZN6Wi3OBi7geWKSUUice6MaYbmNMr317FZAlIkUnPLNhOG0Vp0KPe1ouWqErpSazEw50EZkjImLfvtj+mW0n+nOH47TJAwGn5YKuclFKKUawykVEHgbeCRSJSC3w70AWgDHmLuB64MsiEgUGgBuNGbsLfZqklou1jFFXuSil1AgC3Rjz8WPcfwfWssY3hFOFB3WVi1JKJfHdkaJOZjvXFI3HE4f+a6ArpSYzHwa698Aia6eo0UBXSin/BnpQ0lsu2kNXSk1mPgx066u7bDFplYsuW1RKTV7+C3Q70cVe5RLTVS5KKQX4MdDN8Ktc4hroSqlJzIeBbn0NiCAiGKMVulJKgQ8D3T30PyB6CTqllPLwXaCblJNzxeK6ykUppcCHge6eD909OVfiLItaoSulJjPfBboT3gER61wuRo8UVUop8GOgpxwpqi0XpZSy+DjQExeJTuwU1QOLlFKTlw8D3foazLDKRSt0pdRk5sNATxwpalXoiUP/9cAipdRk5r9A95wPPSDWWNROdK3QlVKTmf8C3XOkaNC68p0b5LrKRSk1mfku0GPx5JYLQCSqFbpSSvku0E3K+dABhuyWSyymga6Umrx8F+huyyWQaLm4gT5216ZWSqk3Pd8FesxzYJG4O0UTPfS/lB6hpq1/vKanlFLjxneB7j2wyG252AcURaJx/vWxnTy29ci4zU8ppcaL/wI9niHQ7Qq9PxIFYGAoNj6TU0qpceS/QPccKRqwey7OyhcnyAeH9BQASqnJ55iBLiL3iUiziOwe5n4RkdtFpFJEdorIBaM/zQTvkaJOhe4YiDiBrhW6UmryGUmF/gfg6qPcfw2w1P5zM3DniU9reN6WS0qe0+cEelQrdKXU5HPMQDfGvAq0H+Uh1wF/NJaNQKGIzB2tCabK1HJxOBV6WCt0pdQkNBo99PmAd1lJrT2WRkRuFpFSESltaWk5vic7KY8bLlzA9LystJaLs1NUK3Sl1GQUeiOfzBhzD3APwPLly4/rKKDzFhZy3sJCIL2H3q89dKXUJDYaFXodsNDz/QJ7bMyltlzCdmWuLRel1GQ0GoG+Evi0vdrlbUCXMaZhFH7uMaUGukOXLSqlJqNjtlxE5GHgnUCRiNQC/w5kARhj7gJWAe8DKoF+4LNjNdlUwWHejgajWqErpSafYwa6Mebjx7jfALeM2oz+DsNV6GGt0JVSk5DvjhT1St0p6tAKXSk1Gfk60IfvoWugK6UmH38H+nAV+lDcvRCGUkpNFr4O9OAwFTokljAqpdRk4etADxxl9rpjVCk12fg60I9eoWsfXSk1ufg60IfroYPVRy870slZ//4crb3hN3BWSik1Pvwd6J4KPTuUvCmD0RjVrX30hqM0dg2+0VNTSqk3nK8D3bsOPSflsNHBoRiRmH1uF22/KKUmAX8HuqdCz0qt0IfiDDmBrjtIlVKTgK8D3bvKJTtDhT7knH1RlzAqpSYBfwf6UXro4WicoZixb2vLRSk18fk60L099KygdTvHDvbBoRhDca3QlVKTh68DPblCDwIwLS8LcFouxr2dakt1u54eQCk1ofg60L0VutNymZZrnRF4MOrZKZpSoZfXd3HDXRvYWHW0a18rpZS/+DrQvccVZdstF6dCDw/Fhl3l0jUwZH+NvAGzVEqpN4bPAz1ThZ5ouQy3Dj1iV+x6qTql1ETi60BP3ilqbUp+TpCAOKtcEi2X7z+5mxVba4FEoOvqF6XURDJhAt1Zh54TCpKbFUzaKRqOxnl6ZwMv72sGcCt3rdCVUhOJrwM9U8slOxiwAz1RoQ8OxegLR93eeaLlohW6Umri8HmgJ247gZ6TFSA3FEjqofdHYoSjcboHowCeoNcKXSk1cfg60DO1XNwK3dND7+y3VrN0p1ToqT10Ywy/e7VKT7erlPIlXwd6IMNO0exQgGy7QncO/e/od5YpWl/Dw6xyqe8a5Cer9vBceeOYz10ppUZbaLwncCKCGXrozk7RcDRxoeiOvkSFboxJ7BRNqdCdnvpARHvrSin/GVGFLiJXi8g+EakUkW9luP8zItIiImX2ny+M/lTTZTpSNDsUIDfL7qHblXi73XKJxg39kdiwO0Wd73VnqVLKj45ZoYtIEPgNcCVQC2wRkZXGmIqUhz5qjPnKGMzxKHNL3M4OegM9SEdfxA18p9Xi3HZ76CktF6cVM6CBrpTyoZFU6BcDlcaYKmNMBHgEuG5spzUymVsuAXJDzrJFq+XiPQdX9+BQ0k7RP26o5tEtNdb3dsAPRHT1i1LKf0YS6POBI57va+2xVB8RkZ0i8piILMz0g0TkZhEpFZHSlpaW45husoyrXJyWSzRxLhevrv6hpAOLHtl8hIc3W5vn9NQzVej7GnvoDUdPeM5KKTVWRmuVy1NAiTHmHOAF4IFMDzLG3GOMWW6MWV5cXHzCTyoibtvFez70nFAwaR26V/dgNKmH3heJ0tJjLVN0KvTUHno8bvjgb9bzxw3VJzxnpZQaKyMJ9DrAW3EvsMdcxpg2Y4yzePte4MLRmd6xOW0X53zoOXaF7j2Xi5e3hz4YjdE7aAW6McZdl566ymUwGmNgKEZ7r56dUSn15jWSQN8CLBWRxSKSDdwIrPQ+QETmer79ALBn9KZ4dAE30JN3inrP5eLVNTBE2HNa3d5wlEgsbo0PZd4p6gR8ny5nVEq9iR0z0I0xUeArwHNYQf0XY0y5iPxIRD5gP+yrIlIuIjuArwKfGasJp3IuFH3ugul8/u2LuahkBjn2uVwytlw8FXpvOOqubGnpCScq9NRAd9enaw9dKfXmNaIDi4wxq4BVKWPf99z+NvDt0Z3ayDgtl7zsIN+79gwAcrOslPfuxJySHSQoktRyafO0UJp7wp4jSDOvT+/PUKF39kfIzbIOZlJKqfHk60P/IXH4v/fMi7l2Pz3iufTclOwg0/Kykip0bwXf3DOYdKRoPG7STuKVafXLjfds5BfP7xvNTVJKqePi/0C3g9y7hDEnK7FZTrU+JTtkBfrgUMZWTIunQh8YivHjZyr45L2b3O8hc4Ve3zlAfefgKG2NUkodP98HevAoFTrA1BzrknRTsoNMzwsltVy8mrvDnkP/41Q297K9ppNY3Lg7RTMF+sBQTNenK6XeFHwf6JkqdG8/uyDX2k0wJTvItNwsugaGMi5nTO2hdw9aq19qO/o9FXpycEei1tGoqeNKKTUefB/o9gGiSacByPW0XKbmOIEeoiA3i75wLK1Cn5Ybslounl65c+70yubeYXeKOkHeG06v3L+1Yic/fKr8RDZNKaX+Lr4+fS4kgjzgeWsarkIvyA3RMzgEuVlJP+OU4qk09wwya1oOALG4oc2+yMXBll6m2Y9PPeDIWZfel6HlUnakkynZuvJFKfXG8X2FLpKhh56hQs/PCZGfE3QPJMrzhP4pRflJFTrgXq7uYHNfUsslFjdugPfbXzMFem84qr11pdQbyveB7vTOk1a5eHeK2hV6XnaQqTlZxI11tKhTuQPMK8yjJxzNuCzxYEuvOx43cPuLB3jPL9YyFIu7FXqm4O4ZjNIzmLlyX1PRdDybqpRSRzVhAn24Cr3AqdCzg264R6LxpFZM4ZQsjIG2vuRriWYHAxxs6WXQ02rZXddFY/cgpdUdboUejsaJena0GmOsCj1DoP/25Up+9HTqqeSVUurE+T7QncL82BV6iKk5ifFpeVZfPD8n5PbInbMuOpbNm0ZH/xBN3Ynxus4BAF7a25R0bhfv7cGhOLG4oTcSJR5PPp9M58BQ0gU3lFJqtPg+0BMVemLMu1PUWYeeb7dcHE6IF+SEmJZnhX5bb4SQ5wctnjkFgPquAXestsO6/eLe5qTlit4+ek/YCmxjoDdlSWP3wBDdg0NpQb+xqo3b9IhTpdQJ8H2gB0QISGLnKKTsFPW0VpwdpJBcoRfY4R6NGwqnJEJ/0cx8ABq7EkeC9oajBANCVUsf+5t63PHq1j4e3VJDPG6SWi2pbRfrQtXQk9J3X7mjnjterkwLeqWUGqkJEuiSNOat0EtmTuEzl5bwzrfMStoROs2+PdXTcgGYnpe4vfCkPAAau5MP7S+xK/eDzX3u2J1rD/LNFbv48TMVSTtJU3eMOu2W7pS2S2d/hLhJf3xvOMqGg20Zt10ppbx8H+jBgLgn6HKEAuK2YHKzgvzgA2eycMYU8oet0BPjhVOy3duLZljBnRqyS4qnAnCko98da7JD//711by6P3F5vd5wIri9K2NS++jtfdaZH9v7ky+i8ZctR/jEvRvp7NeLayiljs73gR4ISNJRomC1X5wqPSuYviYdEgccFeSG3HAHOCmp5TLFve2t3E+dZQd6eyLQD7f1u28iu+q63PHuwShtvWH+tKHa7b9DeoXe0Wd97wS7o6FrAGOsUxN4haMxniyrwxht0SilLL4P9KAkr3BxJAI9cV9yy8Wp0INJ49PzrAp9SnaQmfk57vjM/ETl7lTo3Z7KPRyNs2zuNAAOtSZaMWU1nbzj1pf53pPlPPB6tTvutl4Gh4jFDR12BZ5aiTsrb1JX4Dy7u5GvPVJGeX132rYrpSYn3we6s1M0Va5zSTpPhZ4TCrjh71TlU3OyyAoG3CNHnZ2i03KzyA4FyLcP3585NRHoc6fnuuPOpe8ASoryycsKUt2WqNyfr2hyzwHj3YnaNTBEfecAl/3sJe5ff8gN9NQKvdW+CEdrb3KgO6fsdZZROtr7Inzs7g3UetpBSqnJwf+BHpBjVOiJTRSRxMm6soJ85tISrlg2C8Bduui0VpyvTk99hqdCL5ySzQw74IunJqr4WQU5FBVkJ53862BzL1lBYd703LRA/49nKugJRymt7mAoZrVOOvojGGO44a7X+c3LlW6Qp1boTs++KWWH7faaDjYdak/bkWqM4dEtNdqLV2oC832gByVzoOc4gR5K3kQn0LNCAX7wgTNZXjIDwF26mJ8TIisoaQFfmJeN06qfkZ/NDDvoi6Zmu58Qigty3IDPDgYIiHVVpLnT85hbmOdW2wBbqttZtasRgN31iZ57R/8QG6ra2FLdwYaDbW6QO3/3y3/eyrdW7KTBXhvfYC+p7AtH6eiLuH36Ix3JlXtVax/fXLGLv5QeSftdbT7UTkefBr1Sfuf/QA9I0hp0h7MW3dtDh0Sge1sxkFjGmBMKkJsVdHvsTgsmLzvIFE9bxqnY83NC5Gdbf7d4ag5FdqAX5Ibc55pfmMecabnuc4nApqp2AJbNnZa0s7SjL8JDm2oAqxfvrHpp7Q3T0hPmufJGXj/YRqN99GqTHejfXLGT/33vJndHba399XBbH8/ubuBQi9XXr2zuTdru/kiUT/xuI795uTLtd7jhYBtVLb1p4+rE9YWjGXdoN3YNpl3TFqzjHFLbcWCdayjTa3SotY+thzvSxus6BzKeS6itN8xfS4+kzak/EuUP6w8RSzk+IhqL8/vXDqVdC8AYw583Hk5rEQI8WVbH4ba+tPGX9zVTkWFf0NbDHWyrSd+GyubejEt5m7sHee1Aa9p4XzjKK/ua08ZjccO6Ay0ZX4fS6vaMx4Tsa+zJeIGc+s6BjK9bV/9Q2llax5LvA12EtFUuYAUzQFYgpUK3gzs7pXJ3KvScUID87BDTp6QHel52iPxs64LQJ+U7O09DTLFPKTBrWi7FBTnu8zg/c15hHrM9gT53Wi494SgBgUtOmZk0j+q2Pp4rbyQ7FKCu01rhArhhHjdQ29HvBneDHQAv7mlmb2M3lfZ/7hr7/v9+fj+3PLSdPQ3Wfxgn0NcdaOEjd75OeX030bhhR20nYC2tfHlfM/G44Yt/KuXHGc47s2JrLU9sr0sb95uugaG0lhVYv99MoVfZ3MtPnqlIC7fK5l5uvGdD2qecmrZ+3vrTNZR7PoGB9Vpe9JM1PL2zIWl8IBLjytvWctfag0njxhg+ds8GfpTh/Pr/+NB2vvHXHWnjP1hZzpf+vDUtrH61Zj9f/PPWtJB54PVq/uWxnUn7fwCe2F7PD56qYGNVcoCuO9DKj5+u4JmUbdjX1MN3n9jNw3ZR4ujsj/C1R8q4a21V0ng8bvjqw9v5r+f2pm3Dtx/fyXf+tjtt/D+eqeCWh7albdv/vHiAm+7fnPYm88CGaj5z/5akVWkAz+xq4FO/38y2ms6k8W01HVx/1waeK29MGm/oGuB9t6/jkS3J2xaOxnjv/7zKHS+lF0XX3/X6G3pdBN8HevBYPfRhWi45KePOTtLcrCA/+dBZfPHyJUBi1UteVpD8nESQz3Qr9KC7vt1boU/1rG+fX5jLbPtc69mhAMV2uC+cMYXFRYmlkXOn57L1sNVPv+asOe54QKwKffVu6z9P3CR2njZ1D7LpUDsDQzHiBvc/3pGOfrcCicUNq3db/zgrm3sxxvDX0lq2Hu7g8W21AJTXdxOLGx7fVstn79/C49vr6B6MsulQO5FonLrOAd79i1fY39TDrc/t5YdPlROJxonHDfe9doiWnjA/XbWHD/92vRt4jV2DhKMxmrsHeWnv6J1hcvOhdroHk5d9GmO47YX9vJAhiL/0p618+/GdaeP/+PB2Pn7PxrTxHz1VwRf/vDXttMh3vnKQ3607lLQvBODRLTVsrGpnQ0rordrdQFN3mFf3J1eNa/e30B+J8frB5PEt1e3uPhWvA829NHWHKTuSHDwdfREqGropr+9OugpXNBantLqdlp5w2nLXLdUdxOKGPY3daeNgnXzOq/Sw9Uky9U3Jqf5TV1ltO9yZcXy7HZoVKT/nQHMvPYNRdqc8vmtgiP1NvRxo6kmqfONxw7bDHbT3RajvSn4z3nbY3raG5J+11d62nbUp21ZtbVvq73XzIWt8e8p4qf27S/3kU17fTc9glC32z3M0dQ9yoLk37c1wLPk/0EUIZNgK57qiaS2XYSp0b8vlPctm85Y5BYCnQs8KkpcV5CS7d+6t0J03ieKCnESF7g30k/KYMz3Xfp4s97lOKcpnXmGeO4dTivPdnaPXnDXXHS8pyqemvZ+NVe28Y2mRO56fHaSha5CX9iRCbNA+p3tTd5jS6nY6+63gq7D/kXcPRmnpCfNapRUmK8vqAetqTFUtvay1D4q6d12VO76jtpNndzdS1dLHXWsP0tQdpqN/iLX7W9h+pJMfPV3BfesP8cT2OrbVdLJiWy194ShX3LaWX605wI+f2cPn/lDKr9YcAKz9AHevPciqXQ2c96PnufmPpXT0RXh8Wy1PltXR0Rfhloe28Zbvrua58kYqm3vZfKgdYwy/WnOAj969gV88t4+BSMxdzfO37XXc/uIB7l57EGOMG3DrK1t5tryRZ3Y2JH2E3t/Uw6v7W6hq7Uuq0lt7w7y0t5lY3CQFQDga4/kK603RGwDGGJ6330ScTzmOl/daH/N31SWPrzvQYo8nB8x6O+B313clVZ+v269VdVt/0hvZZjtAItE4Bz1tlz0NPe4BbN4gbukJu0tqyz3PPRSLu9uUGsTDBXdiPHPQ704Zd1onexp7kt58nPGWnjDNntfBmU80btjXmHgDrWrtdZcL7/K8Pj2DQ+yz32i948YYN5hTf9/uXIcZ35nyejrju1LeGLZ5fo7305vz+Oq2frr635gT8vk+0DMdWASeHnpqyyU7cw/dbblkJV9lqNCp3LODnDxzintQkVuhZweZkh0kINbO0kQPPStjy2V6Xsjd0XpK8VTm26cXCAaERTOsc8csnJHHOQumu3NYNncaPYPWxTU+99nfL3AAABL/SURBVPbF7vg5CwoZGIrx9M4G/uG0YnebTrffjB7aXIMI7hJL51PCyh31boXfF4m5bzzbj3S6Pci9jT3ujt3XDrS6R786rZbsYIDHt9Wy1u5NPry5huaeMNmhALc9v58X9zbTG47yxPY6XtnbTEFuiF+u2c+TZXWs3t3IPa9W8fvXDhEQ4fmKJh7aXMMPn6rge0/s5lcvHmD1rgaygwFWltXzzRU7+ez9m1m5o55frtlPTijAugOt/Gz1Hq765avsaejm31eWExArVP+08TAX/PgFjrT3c+uz1kf57sEoj22r5crb1lLd2sf96w+5v8fnK5r4wgNbqGzu5YntdUTt/5Rbqtu57fl9VDb38ur+VveI4R1HOnl8Wy0HW3rZ39TLYbtNsfNIF1uq2znU2kfXwBClhxOVYU2b1SaLxw3r7N/xvsYe2nrD1NtLT9fbwd3ZP0RNe7/bh/ZW/hX13e6pJbyVX3ldokrfdCgxvruu231zKPVUkN6Arqjvds/5n/oG4Gyb9/HeN4CK+u6kN0onoGs7BpJWVDnjkWg8aT/ONk+1630O77j3zcH5BJA61x1Hutz2pLfar27rd/+te4O7PxJlr/1G4Q1uYwzb7bmW12Xetir79XU4wd0XiXGotTdtHGBnypv6WBnRJehE5GrgV0AQuNcY858p9+cAfwQuBNqAjxljqkd3qplZFXrmlksow2kBhq3Q7VUtuSnj3gr91x+/wB13KnXnpF9FU3MIBsSt0AtyQ+679bzCPPdNZ3pelhvoiz0V+klTstw3ibPnT2fOtFyyQwEi0ThnzJ3GMzsbmJoT4u2nFjF7Wg5N3WHOW1TIhqo22voifHT5Qpp7wuxp6OaSJTPZ29jDql0NnLOgkKk5QdZXtnHFstk8uKmGBzZUA/DWxTPYdKidd58+ixcqmnhwUw3dg1H35y+ba70xPLu7kcPtfeSEAoSjcQpyQnzkwgX8eeNht+pxPgn8x3Vn8a8rdvKjp6zeu/Ox+NcfP59vrtjJ956weqJtfRHa+iL881Wn8XxFE3e+ctANqj+8Xs17z5zNSVOyebKs3g2bf/nrTuYX5vHpS07mZ6v30tg9SH8kxo33bGQgEuN7157BD5+q4D9X76U/EuPjv9tIbccAX79iKf+z5gA/XFlOXyTG/31wG/uaerjxooX8bXsdP1+9l95wlKbuMA1dg5y/qJDO/iF+t66KnsEoz5Y32p/Osjhj3jRW727kkS1HWHBSHuctLATgvWfO5tX9rXzy3k0U5GbxkQvmE4sbrjpjNs9XNPHhO9czFDN89T1Lae+LcMWy2azZ08T7b3+N7sEhfvqhsymv7+aKZbNYs6eZT/5+E03dYW776Lnua/TS3mb+7W+7rDeq68/htQOtXLx4Brtqu7hr7UG+88Quvn/tmbx6oJVFM6YQCghPltXxh9er+fI/LKGqtY/crADnLCjktcpW3v3fr3DtufPc9uM/nFbMjtpOrr/zdc5bWMiZ860D5S4/rZh1B1r44p9KKS7I4f1nz2NgKMY7lhax7kArX31kO1Oyg3zpH5ZwqLWPt59axGuVrXz3id1kBwN885rTKavp5NIlM3n9YBt3vFRJKCj8y3vfwraaDvff4UOba1i5o55b3nUq22o6OH1OAQ1dgzy7u5Gymk5uurSEbTUdTMsNMWd6LusrW+nsH+ID581jW00HInD+wkK21XTws9V7uGxJkdtyuvDkk9hV18VvX6nklKKpTMuz/n+ev6iQsiOd3L/+EDPyszl3QSGtvRHOXTCdHbVd3PtaFSdNyebqs+ZQUd/N2fOns6uuiwder6Zoag4fvmA+pYc7OHPeNMrru1mxrY55hXl8xB4/fU4Bext7eKGiieq2fj5w7ryko85H2zEDXUSCwG+AK4FaYIuIrDTGePeWfR7oMMacKiI3Aj8HPjYWE041tzA34xWDcrOCSWvQHe4ql+F2iqZU6N4euvfvOAcaTckJceUZs1k62wq/Yk8PPW6XDPM9bZVpnkA/pTifablZFOSGOGlKtvvmcdb86QQCwsKT8qjvHGShfU6ZS5fMJCsY4JSiqVag22FSXJDDVWfO5oWKRivQT5nJ/euricYN//ret/Dq/hbWV7ZxyZKZPFlWz5H2Ad66eAZXnTmHTYfaWTZ3Gv2RGC9UNCECX3nXqXzvyXLOXjCdixfP5KsPbwfg/75zCb995SAXnHwSt7zrVFZsraW2Y4AbLlzAX7fWckpRPjcsX8AfXq+moqGbdywtYlNVO1lB4cozZvPyvjk8vq2OJcX5dPYP0dYX4brz5hMICLc+u48p2UHmTMulqrWPmy4poXswyiNbrGWWS2dN5UBzL19+5xIuKpnBz+zQLpk5heq2fj532WJuWL6Q/3hmD/2RGPML86jtGOAdS4v42nuW8vDmGpq6w8yZlktFQzeLi/L57rVncLClly3VHRRNzWFXXRfTckP81/Xn8NuXD/L49jpOmpLF/qZeggHhN584nz0NPayvbHPbXbUdDXz13aeyYMYUnitvIhgQ+sJR7n61ivecPoubLi3h+YomWnsj5GcH+fHTFZxSnM/Xr1jKmj1NNHYPkpcV5OuPllGQG+IbV72FV/a1cKR9gJxQgK88tJ2AwGcvK6Givpuqlj6yQwH+6VFrR+iPP3iW29fNCgr/9rddAHz+7Ytp7gnz1I56QgHhJ6v2AHDFstksmZXP5kPtBMS6AhdYxcW7T5/F2v0tbK3pcD9d5GUF+djyhby6v4Xnyq3W0p83WjsFb7qkhHUHWt2du38ptfbH3HRpCa9VJsYftz/VXX/hAsqOdPLMLmv8Sbvd9+ELFtDSE3b3fzxRVocx8Im3LqK6tc/9RPOYvb/n8qXFFE3NYcW2WrbVWJ/IQgFh6aypXLqkiDteruTutVXcvbaK7FCAgpwQHzx/Pt97Yje3Pmudotr5BP/pS05me00nP7QLEOc6wJ+5rIR/enQHP11lfcL74VMVROOGmy4t4Z//uoPbXtgPwM9W76FnMMpX3nUqtz67lztfsXZo37p6L32RKDdfvoRwNM4fNxwG4D9X7WH29Fw+cfEivvCOUxhtI6nQLwYqjTFVACLyCHAd4A3064Af2LcfA+4QETFvwIlGvvO+ZWR6kvefMzfpcH3HnOm57koWL+ccLvkpF3ZOrHJJfgOYYZ8WID87yMcuWuSOOxV6fk6Is+dPp3NgyN1B61TnzpLHU+1TCMwvzGOaZ/zs+Va7pWRmPtG4cd8k3nFaMQBLZ0+l7Ein25b5+MWLyAoGOHPedJ7a2cDykhksKc7ng+fN57JTi9w3vNPnTONnHz6bgaEYHzh3HlUtfW5Vc9MlJaza1UAsbnj3sln85+q9XLakiGvOnktnf4QnttfxpXcu4ZldDVx5xmyKC3L4xlWn8YOnKvjc2xfT2htmeckMRIT/c/li/unRHXzwvPksnVVAtr0U9PoLFvD4tjquPmsORVNzqGrpY+GMKVxz1lxufXYf73rLLD5w3jyeL2/ikiUz6YvEyAoKp80u4CcfOps/rD/EDcsXkB0MUFyQQzxuuP+zF/PrFw/wtfcsZar9Oy+v7+LPX3grD248zOfevhgR4aKSGTy9s4F7b1rOs7sb+eD585maE+KCk09iS3UHt15/NvubennbKTM5dVYB5y8q5PHtdXzjqrcQCgjzCvO4/LRi9+Ipn7mshLPnTycaN1x7zjx3R+l1583jo8sXUtXSx40XLaQvEkXs1Uzfef8yNhxs45NvO5mcUMD6VDY1h9992prTxy5ayIz8bN4yp4Cm7jArvnwJT+9s4Npz5nLyzHzOWTCdrgNDPPWPl/F8RROXnDKT8xYWUtXSy/aaDv76pUvZXdfFvMJcLl9azB9er+apHfXc8+kLae2NkBMKcMWy2W777CcfOpupOSG6BoZ49+mz3GMe/vFdp3LeokKqWvq47NQiZuRbx1p8+IIFfOSCBWyr6eD8RYUsP3kG+dlBLjj5JP7flafx6v5WlszK54plsyiZOYUp2SF+/pFzeGFPE3Om5fL+c+by2NZaDrf1c+cnL2BNRRMFuVnu76utL8K9Ny1n3YFWgiJcv3wBj2yuofRwB3d/6kJ213YxMBTjf507j7IjnTy+vZZffvQ8GrsHaesN867TZ7lLCr/7/mUEA8Lhtn4uKpnhtkr/zzsWs6R4KrvruzhtdgGXLy0mKyhcc9Zc3rNsFpsOtTOrIIdrz5nHD1ZWcMbcaXzqkpNZd6CFvKwQ154zl/teO0TcGL5+xWms3d8MCNeeM5d1B1qoqO/m+//rDNbubyUcjfGxixbSMzhEW2+YH3/wLDYfaqdzYMhtzY46Y8xR/wDXY7VZnO8/BdyR8pjdwALP9weBogw/62agFChdtGiRGQ/hoZipbu1NGx8cipontteaeDyeNB6Jxszta/ab/nA0aTwWi5tfPLfXNHQOpP2su9dWmr0N3Wnjj5UeMaXV7aazL2Je3NPojq/b32I2HGw1bb1h89NVFWZwyHquPQ1d5vXKVhMeiplfrdlvegaHjDHGNHUNmE1VbcYYYzYebHUfPxCJmrKaDmOMSdqOeDxuDjSlz8cYY5q7BzOOD0Siab+LVPF43NS09aWNx2Jx89zuBjMUjaWN/2lDtWntSX/O+16ryvg7e3DjYbP+QEva+JNldeapHXVp46/sazYPbjycNr7jSIe5Z+3BtPGatj7z6xf3m1gseVs7+yPm9jX7zUAk+XWPRGPmrlcqTddAJGk8Ho+bBzceNi0Ztm31rgZT29GfNr7xYKupbO5JG9/T0GUq6rvSxo+095mdRzrTxtt7w2a7/bp79YejprS6PW08Goub0ur2jK9vWU1H2u/CmVMk5fU0xpiqlt6035ExxtR39pvulN+RM9f23nDaeM/gUMZ/i4ND0Yz/x6KxuKnL8DuNx+MZf9fGGFPX0Z9xmxs6BzJuc1P3QMZt7h6IpP3bNsaY3sEh9/+i10AkavrCQxnndDyAUjNMXos5RhEtItcDVxtjvmB//yngrcaYr3ges9t+TK39/UH7Memr/G3Lly83paWlf/87kFJKTWIistUYszzTfSNZ5VIHLPR8v8Aey/gYEQkB07F2jiqllHqDjCTQtwBLRWSxiGQDNwIrUx6zErjJvn098JI5VumvlFJqVB1zp6gxJioiXwGew1q2eJ8xplxEfoTVy1kJ/B74k4hUAu1Yoa+UUuoNNKJ16MaYVcCqlLHve24PAjeM7tSUUkr9PXx/pKhSSimLBrpSSk0QGuhKKTVBaKArpdQEccwDi8bsiUVagMPH+deLgGEPWprAJuN26zZPDrrNI3eyMaY40x3jFugnQkRKhztSaiKbjNut2zw56DaPDm25KKXUBKGBrpRSE4RfA/2e8Z7AOJmM263bPDnoNo8CX/bQlVJKpfNrha6UUiqFBrpSSk0Qvgt0EblaRPaJSKWIfGu85zNWRKRaRHaJSJmIlNpjM0TkBRE5YH89abzneSJE5D4RabYvkOKMZdxGsdxuv+47ReSC4X/ym9cw2/wDEamzX+syEXmf575v29u8T0TeOz6zPjEislBEXhaRChEpF5Gv2eMT9rU+yjaP7Ws93KWM3ox/sE7fexA4BcgGdgBnjPe8xmhbq0m5jB9wK/At+/a3gJ+P9zxPcBsvBy4Adh9rG4H3AasBAd4GbBrv+Y/iNv8A+OcMjz3D/jeeAyy2/+0Hx3sbjmOb5wIX2LcLgP32tk3Y1/oo2zymr7XfKnT3gtXGmAjgXLB6srgOeMC+/QDwwXGcywkzxryKdf58r+G28Trgj8ayESgUkblvzExHzzDbPJzrgEeMMWFjzCGgEuv/gK8YYxqMMdvs2z3AHmA+E/i1Pso2D2dUXmu/Bfp84Ijn+1qO/kvyMwM8LyJbReRme2y2MabBvt0IzB6fqY2p4bZxor/2X7HbC/d5WmkTbptFpAQ4H9jEJHmtU7YZxvC19lugTyZvN8ZcAFwD3CIil3vvNNbntAm95nQybKPtTmAJcB7QAPxifKczNkRkKrAC+Loxptt730R9rTNs85i+1n4L9JFcsHpCMMbU2V+bgb9hffxqcj562l+bx2+GY2a4bZywr70xpskYEzPGxIHfkfioPWG2WUSysILtQWPM4/bwhH6tM23zWL/Wfgv0kVyw2vdEJF9ECpzbwFXAbpIvxn0T8OT4zHBMDbeNK4FP2ysg3gZ0eT6u+1pKf/hDWK81WNt8o4jkiMhiYCmw+Y2e34kSEcG67vAeY8xtnrsm7Gs93DaP+Ws93nuDj2Pv8fuw9hgfBL4z3vMZo208BWuP9w6g3NlOYCbwInAAWAPMGO+5nuB2Poz1sXMIq2f4+eG2EWvFw2/s130XsHy85z+K2/wne5t22v+x53oe/x17m/cB14z3/I9zm9+O1U7ZCZTZf943kV/ro2zzmL7Weui/UkpNEH5ruSillBqGBrpSSk0QGuhKKTVBaKArpdQEoYGulFIThAa6UkpNEBroSik1Qfx/qvALDX/yRxQAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    }
  ]
}